package com.zgqb.loan.list;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * 名单服务服务
 * 
 * 黑名单录入触发时刻:
 * 1.外部黑名单：命中了已对接的第三方黑名单或者高风险关注名单，包括宜信、白骑士、凭安、融360等黑名单。触发时刻:保存三方数据之后。
 * 用例:LoanThirdService->LocalServiceImpl->afterPingAn()/afterBaiqishi()/afterZhiCheng()/afterTianJi()
 * 
 * 2.内部逾期黑名单：逾期超过22天的用户，系统自动将该用户添加黑名单；触发时刻：用户还款成功之后。
 * 用例:LoanCoreService->AfterRepaymentController->action()
 * 
 * 3.反欺诈黑名单：命中系统风控引擎中的规则(同盾风控云数据),触发时刻：保存同盾数据后
 * 用例:LoanThirdService->TongdunTasks->doQuery()
 * 
 * 4.催收标签黑名单：催收标签的有效联络为他人借贷、失联、死亡、他人代偿等类型，系统自动将该用户添加黑名单；触发时刻：催收员记录过程中
 * 用例:UnifyPlatform->UrgeAssignServiceImpl->recordCuishou()
 * 
 * 5.导入黑名单：手动批量导入
 * 用例:UnifyPlatform->UrgeAssignServiceImpl->recordCuishou()
 * 
 * 6.信审核实黑名单：信审电话核实用户，明显为欺诈用户，由信审同事手动添加
 * 用例:UnifyPlatform->UrgeAssignServiceImpl->addBlackList()
 * 
 * 描述：黑名单/白名单的录入与查询 包含维度：手机号/身份证/银行卡号
 * 服务对象：申请/审核/放款等关键流程
 * 依赖服务：无
 * @author 秦瑞华
 *
 */
@EnableCircuitBreaker /* 断路器 */
@EnableHystrix /* 服务之间依赖调用的容错 */
@EnableHystrixDashboard /* 容错监控 */
@EnableFeignClients /* 开启Feign的，让服务之间调用通过REST API */
@EnableScheduling /* 开启工作任务，如定时器 */
@EnableDiscoveryClient /* 服务注册与发现 */
@SpringBootApplication
@MapperScan(basePackages = "com.zgqb.loan.list.mapper")
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}
